The present invention relates to a method for communicating data between at least two units on a serial bus, wherein the units have independent clocks and said data are transmitted as a sequence of frames, each frame including an identifier field and a data field. In particular the invention relates to communicating data on a serial bus in a car.
In up to date cars microcontrollers are provided e.g. for controlling the combustion engine, the anti-lock brake system (ABS), window lifters, door locks, and the adjustment of driver/passenger seats and mirrors. However, the connection of the microcontrollers with each other by wire would contribute considerably to the weight of the car with a negative impact on the fuel consumption. Therefore mechanical elements such as actuators, sensors, etc. are combined with a corresponding microcontroller. Thus local data need not be transmitted to a central processing unit but are processed in the local microcontroller of the unit, and control wires between each unit and the central control unit of the car are reduced to the minimum necessary number. For communicating data between the units a multiplexed serial bus is provided. On the serial bus a predetermined protocol rules the communication of the data. An example of such a bus system and protocol is the Controller Area Network (CAN)xe2x80x94which provides the communication back bone in up to date cars.
It is essential for the protocol on a bus that each of the units refers to and is synchronized with a common clock signal. To this end each unit is provided with a clock and the clocks of all units are synchronized once the protocol is implemented on the bus.
The clocks of the units must meet the requirements of a sufficient time resolution, high frequency stability and high thermal stability. Stable and fast local oscillators are therefore based on crystals. Yet, crystals are expensive and raise the production costs of the bus system. As an alternative to crystal based oscillators RC-circuits can be used as local clocks. RC-circuits, however, are inaccurate. They are subject to variations and fluctuations of characteristic values. In particular the RC-frequency may vary in a range between 50% and 200% of its nominal value. In order to reduce the variations of the circuitry additional end-of-line calibration is necessary. Depending on the type of the oscillator circuit the oscillator frequency may eventually be adjusted to a maximum deviation of +/xe2x88x9215% of its nominal value.
In order to reduce current consumption most of the units in a car disconnect from the bus and change to a stand-by mode after a certain period of idle time. When they are addressed on the bus again the units must start up from their stand-by mode and may have to be re-synchronized. Synchronizing the circuit may be very time consuming, depending on the type of the unit. If the start up time of a unit is rather long a first frame of data may already be on the bus, and this data package may get lost because the destination unit was not yet ready for receiving it.
Therefore, a method is needed to ensure an always reliable and synchronized communication of data on a serial bus with different types of units (clocks) and with randomly distributed periods of idle time on the bus.